Traditionally, a processor could only accept operating systems and application programs in the instruction set for the particular processor. It could not accept operating systems and application programs in another instruction set. Thus, when processor architecture and instruction sets were modified to incorporate technological advancements in a new processor, the existing software base of operating systems and application programs could not be utilized. New operating systems and application programs had to be developed.
One prior processor did have the capability of accepting an application program in one instruction set (VAX code) and also accepting an application program in an earlier instruction set (PDP-11 code). However, the prior processor could only accept an operating system in one instruction set (VAX code) and could not accept an operating system in another instruction set e.g. PDP-11 code. In addition, the prior processor could only accept an application program entirely in one instruction set, VAX code or PDP-11 code, but could not accept an application program with instructions from both instruction sets. Two previously unrecognized problems existed with the prior processor. First, because the prior processor could only accept an operating system in one instruction set (VAX code), an entirely new operating system had to be developed at a large cost. Existing functionalities of the older operating system could not be utilized even if the technological advancements did not provide benefits for those functions. Secondly, because the prior processor could only accept an application program in one instruction set or another, software developers had the difficult choice of incurring large development costs to develop an entirely new application program or forgo the benefits of technological advancements offered by a new instruction set. They did not have the option of implementing a new instruction set where justified by performance advantages and utilizing the existing software where justified by cost considerations.
Thus, a processor with the capability of accepting multiple operating systems is needed. What is also needed is a processor with the capability of accepting an application program with instructions from multiple instruction sets.